//
// Created by wumingli on 2023/2/10.
//

#include <android/log.h>

#ifndef MIXEDPLAYERSDK_ESPCN_H
#define MIXEDPLAYERSDK_ESPCN_H

/**
 * 请使用espcn/build.sh 编译本源码
 * 需要根据自身情况修改脚本中的NDK_DIR和CMAKE_DIR
 * 每次编译只能编译一个ABI、需要编译两次（arm65-v8a, armeabi-v7a）
 *
 * 需要修改espcn/CMakeLists.txt(非cpp/CMakeLists.txt)中的TENSORFLOW_SOURCE_DIR的位置（tensorflow源码）
 */
namespace espcn {

    class ModelHolder {
    public:
        ModelHolder() noexcept {};

        virtual ~ModelHolder() {};

        virtual bool configure() = 0;

        virtual bool runModel(int inBuffId, int outBuffId) = 0;

        static ModelHolder *createModelHolder(const void *modalData, size_t modelBytes);

        static void deleteModelHolder(ModelHolder *);
    };

}

#endif //MIXEDPLAYERSDK_ESPCN_H
